﻿/*=====================================================================
 * Arquivo:	AbortException.cs
 * 
 * Sumário: Classe que implementa a exceção Abort.
 * 
 * Autor:		Siddhartha Argollo
 * 
 * Copyright (C) TecnoTRENDS. Todos os direitos reservados.
 =====================================================================*/
using System;
using System.Runtime.Serialization;
using DaCredito;

namespace DaCredito
{
    /// <summary>
    /// Classe que implementa a exceção Abort.
    /// </summary>
    /// <remarks>
    /// Exceções deste tipo não devem ser propagadas ao usuário.
    /// Servem apenas para interromper um operação que só pode
    /// ser interrompida pelo levantamento de uma exceção.
    /// </remarks>
    [Serializable]
    public class AbortException : TFCException
    {
        /// <summary>
        /// Instancia uma exceção sem mensagem.
        /// </summary>
        public AbortException()
            : base("AbortException")
        {
        }

        /// <summary>
        /// Instancia a exceção com uma mensagem sem parâmetros
        /// de formatação.
        /// </summary>
        /// <param name="asMessage">Mensagem da execeção.</param>
        public AbortException(string asMessage)
            : base(asMessage)
        {
        }

        /// <summary>
        /// Instancia a exceção com uma mensagem sem parâmetros
        /// de formatação.
        /// </summary>
        /// <param name="asMessage">Mensagem da execeção.</param>
        /// <param name="aoInner">Exceção causadora.</param>
        public AbortException(string asMessage, Exception aoInner)
            : base(asMessage, aoInner)
        {
        }

        /// <summary>
        /// Instancia a exceção com uma mensagem com parâmetros
        /// de formatação.
        /// </summary>
        /// <param name="asMessage">Mensagem da execeção.</param>
        /// <param name="aoParams">Parâmetros de formatação.</param>
        public AbortException(string asMessage, object[] aoParams)
            : base(asMessage, aoParams)
        {
        }

        /// <summary>
        /// Instancia a exceção com uma mensagem com parâmetros
        /// de formatação.
        /// </summary>
        /// <param name="asMessage">Mensagem da execeção.</param>
        /// <param name="aoParams">Parâmetros de formatação.</param>
        /// <param name="aoInner">Exceção causadora.</param>
        public AbortException(string asMessage, object[] aoParams,
          Exception aoInner)
            : base(asMessage, aoParams, aoInner)
        {
        }

        /// <summary>
        /// Construtor usado para serialização do objeto.
        /// </summary>
        /// <param name="info"></param>
        /// <param name="context"></param>
        protected AbortException(SerializationInfo info, StreamingContext context)
            : base(info, context)
        {
        }

    } // AbortException

} // Trends.TFC.Common
